package com.hxf.service.base;

import java.io.Serializable;
import java.util.List;

import com.hxf.dto.BaseDto;
import com.hxf.exception.ServiceException;

/**
 * service公共接口
 * @author tengyicheng
 * @version [1.0, 2013/09/22]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public interface BaseService {

	/**
	 * 保存信息
	 * @param entity
	 * @throws ServiceException
	 */
	public void save(BaseDto entity) throws ServiceException;

	/**
	 * 修改信息
	 * @param entity
	 * @throws ServiceException
	 */
	public void update(BaseDto entity) throws ServiceException;

	/**
	 * 保存或者修改信息
	 * @param entity
	 * @throws ServiceException
	 */
	public void saveOrUpdate(BaseDto entity) throws ServiceException;

	/**
	 * 删除信息
	 * @param entity
	 * @throws ServiceException
	 */
	public void delete(BaseDto entity) throws ServiceException;

	/**
	 * 根据ID 查询信息
	 * @param clazz
	 * @param id
	 * @return BaseDto
	 * @throws ServiceException
	 */
	public BaseDto load(Class clazz, Serializable id) throws ServiceException;
	
	/**
	 * 根据ID 查询信息
	 * @param clazz
	 * @param id
	 * @return BaseDto
	 * @throws ServiceException
	 */
	public BaseDto get(Class clazz, Serializable id) throws ServiceException;
	
	/**
	 * HQL查询信息
	 * @param sql
	 * @return List<BaseDto>
	 * @throws ServiceException
	 */
	public List<BaseDto> findBy(String sql) throws ServiceException;
	
	/**
	 * 获取最大ID
	 * @param idName
	 * @param className
	 * @return Integer
	 * @throws ServiceException
	 */
	public Integer getMaxId(String idName, String className) throws ServiceException;
}
